package com.bt.service.impl;

import com.bt.dto.YddTagDTO;
import com.bt.entity.YddTag;
import com.bt.mapper.YddTagMapper;
import com.bt.result.PageResult;
import com.bt.service.YddTagService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Description TODO
 * @Author itheima
 * @Date 2023-05-02 14:36
 */
@Service
public class YddTagServiceImpl implements YddTagService {

    @Autowired
    private YddTagMapper yddTagMapper;

    /**
     * 标签列表-分页
     *
     * @param page
     * @param limit
     * @param tagname
     * @return
     */
    @Override
    public PageResult list(Integer page, Integer limit, String tagname) {
        PageHelper.startPage(page,limit);
        //根据条件查询返回封装成page<T>
        Page<YddTag> yddTagPage = yddTagMapper.list(tagname);
        //返回PageResult
        return new PageResult(yddTagPage.getTotal(),yddTagPage.getPages(),yddTagPage.getPageSize()
        ,yddTagPage.getPageNum(),yddTagPage.getResult());
    }


    /**
     * 标签添加
     *
     * @param yddTagDTO
     */
    @Override
    public void add(YddTagDTO yddTagDTO) {
        YddTag yddTag = new YddTag();
        BeanUtils.copyProperties(yddTagDTO,yddTag);

        //补全数据
        yddTag.setDefaultData("1");

        //调用mapper的add方法
        yddTagMapper.add(yddTag);
    }


    /**
     * 标签列表-全部
     *
     * @return
     */
    @Override
    public List<YddTag> all() {
        List<YddTag> yddTagList = yddTagMapper.all();
        return yddTagList;
    }


    /**
     * 标签详情
     *
     * @param id
     * @return
     */
    @Override
    public YddTag rowInfo(Integer id) {
        YddTag yddTag = yddTagMapper.rowInfo(id);
        return yddTag;
    }


    /**
     * 标签修改
     *
     * @param yddTagDTO
     */
    @Override
    public void update(YddTagDTO yddTagDTO) {
        YddTag yddTag = new YddTag();
        BeanUtils.copyProperties(yddTagDTO,yddTag);
        //修改ID和Tagname
        yddTag.setId(yddTagDTO.getId());
        yddTag.setTagname(yddTag.getTagname());
        //代用mapper的update方法
        yddTagMapper.update(yddTag);
    }


    /**
     * 标签删除
     *
     * @param id
     */
    @Override
    public void del(Integer id) {
        yddTagMapper.del(id);
    }

}
